﻿#ifndef MENUBAR_H
#define MENUBAR_H

#include <QWidget>
#include <QColor>
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QVBoxLayout>
#include <QtDebug>
#include <QMessageBox>


namespace Ui {
class MenuBar;
}

//这是菜单栏的控件类
class MenuBar : public QWidget
{
    Q_OBJECT

public:
    explicit MenuBar(QWidget *parent = nullptr);
    ~MenuBar();
    void updateTheme(QColor newTheme, QColor oldTheme);
    void disableDisplayMenu();
    void enableDisplayMenu();
    void setThemeIndex(int index);

signals:
    void changeTheme(int thIndex);//改变主题的信号，传递主题的index
    void changeDisplayType(int index);//改变显示类型的信号，传递显示类型
    void openFileDialog();//打开文件的信号
    void newFileDialog();//新建文件的信号
    void closeCurFile();//关闭文件的信号
    void showState();//打开工具统计页面
    void showSearch();//打开工具搜索页面
private:
    void initMenu();
    void initConnections();

    Ui::MenuBar *ui;
    QMenuBar* menuBar;

    //文件菜单
    QMenu* fileMenu;
    QAction* openFile;
    QAction* newFile;
    QAction* closeFile;
    QAction* exit;

    //显示菜单
    QMenu* dispalyMenu;
    QActionGroup* displayTypeGroup;
    QAction* search;
    QAction* stats;

    //主题菜单
    QMenu* themeMenu;
    QActionGroup* themeChoiceGroup;
    QList<QString> themeNames;//颜色的名字列表


};

#endif // MENUBAR_H
